// 数组去重

const arr11 = [2, 4, 1, 5, 5, 4, 2, 1, 0]

// 第一种方法
const repeatFun1 = (arr) => {
  if (arr.length < 2) {
    return arr
  }
  /**
   * Array.from 使拥有length属性的值返回一个数组，有两个参数，第二个参数是回调函数，可选
   * Array.from(['3','6'], x => x + 10)
   * arr[0] => 13
  */
  return Array.from(new Set([...arr]))
}

console.log(repeatFun1(arr11), 'repeatFun1')

// 第二种方法
// 新建一个数组，通过indexOf判断是否含有那一项
const arr22 = [2, 4, 1, 5, 5, 4, 2, 1, 0]
const repeatFun2 = (arr) => {
  if (arr.length < 2) {
    return arr
  }
  let newArr = []

  for (let i = 0; i < arr.length; i++) {
    if (newArr.indexOf(arr[i]) === -1) {
      newArr.push(arr[i])
    }
  }
  return newArr
}
console.log(repeatFun2(arr22), 'repeatFun2')

// 第三种方法
// 通过排序
const arr33 = [2, 4, 1, 5, 5, 4, 2, 1, 0]
const repeatFun3 = (arr) => {
  if (arr.length < 2) {
    return arr
  }
  arr.sort() // [0,1,1,2,2,4,4,5,5]
  let newArr = [arr[0]]
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] !== newArr[newArr.length - 1]) {
      newArr.push(arr[i])
    }
  }
  return newArr
}
console.log(repeatFun3(arr33), 'repeatFun3')